Enterprises, such as businesses and other organizations, typically enact security policies that prevent unauthorized users from accessing enterprise computing resources. For example, some security policies require a user to provide credentials that must be authenticated before the user is granted access to enterprise data.
When a user operates a device to access an enterprise resource, the device can include several applications that perform various types of functions. For example, a device can include a web browser application, an email application, a word processor application, and game applications. Often times, these applications are obtained from application developers that have no affiliation with the users of the client devices or the enterprises that provide enterprise resources. Some enterprises have become concerned that applications installed on devices could introduce security vulnerabilities that could be exploited to facilitate unauthorized users accessing enterprise resources.
To enhance the security of applications installed in devices, some enterprises provide software development kits (SDKs) to application developers. These SDKs provide application developers a development environment that facilitates integrating security libraries into applications so that the developers can add security and management capabilities to the application. Using an SDK, application developers can modify the source code of their applications to include the security libraries that are provided by the SDK. However, the modified code has to be rebuilt and redistributed.
In another approach, the security of an application can be enhanced through a process known as “wrapping.” To wrap an application, the application is first decompiled. Security libraries are inserted into the decompiled application, and the application is then compiled with the added security libraries. However, wrapping requires access to modify and repackage an application.